<?php

    Class PartidosDAO
    {

        private static function getInstance(&$rs)
        {
            $partido = new Partido();

            $partido->idPartido        = $rs->fields["idpartido"];
            $partido->estado           = $rs->fields["estado"];
            $partido->nroEspectadores  = $rs->fields["nroespectadores"];
            $partido->fecha            = $rs->fields["fecha"];
            $partido->resultado        = $rs->fields["resultado"];
            $partido->idEquipoVisita   = $rs->fields["idequipovisita"];
            $partido->idEquipoLocal    = $rs->fields["idequipolocal"];
            $partido->factorLocal      = $rs->fields["factorlocal"];
            $partido->factorVisita     = $rs->fields["factorvisita"];
            $partido->factorEmpate     = $rs->fields["factorempate"];
            $partido->esClasificatorio = $rs->fields["esclasificatorio"];

            return $partido;
        }

        static function add(&$partido)
        {   
            $db = MyConnection::$db;

            print_r($partido);
            $query = $db->Prepare("INSERT INTO partidos ( estado, nroespectadores, fecha, idequipolocal, idequipovisita, factorlocal, factorvisita, factorempate, esclasificatorio) VALUES (?,?,?,?,?,?,?,?,?)");
            return $db->Execute($query, array( $partido->estado, $partido->nroEspectadores, $partido->fecha, $partido->idEquipoLocal, $partido->idEquipoVisita, $partido->factorLocal, $partido->factorVisita, $partido->factorEmpate, $partido->esClasificatorio));

        }

        static function update(&$partido)
        {
            $db = MyConnection::$db;

            $query = $db->Prepare("UPDATE partidos SET estado=?, nroespectadores=?, resultado=? WHERE idpartido = ?");
            return $db->Execute($query, array($partido->estado, $partido->nroEspectadores, $partido->resultado, $partido->idPartido));
        }

        static function getById($id)
        {
            $db = MyConnection::$db;

            $rs = $db->Execute("SELECT * FROM partidos WHERE idPartido = $id");

            if (!$rs->EOF)
            {
                return self::getInstance($rs);
            }
        }

        static function getAll()
        {
            $db = MyConnection::$db;

            $rs = $db->Execute("SELECT * FROM partidos");

            $all = array();
            while (!$rs->EOF)
            {
                $all[] = self::getInstance($rs);
                $rs->MoveNext();
            }
            
            return $all;
        }

        static function getByIdEquipo($idEquipo)
        {
            $db = MyConnection::$db;

            $rs = $db->Execute("SELECT * FROM partidos WHERE idEquipoLocal = $idEquipo OR idEquipoVisita = $idEquipo");

            $all = array();
            while (!$rs->EOF)
            {
                $all[] = self::getInstance($rs);
                $rs->MoveNext();
            }

            return $all;
        }

        static function getNoFinalizados()
        {
            $db = MyConnection::$db;

            $rs = $db->Execute("SELECT * FROM partidos WHERE estado != 5");

            $all = array();
            while (!$rs->EOF)
            {
                $all[] = self::getInstance($rs);
                $rs->MoveNext();
            }

            return $all;
        }
    }

?>